<?php
require_once 'vendor/autoload.php';

use think\facade\Db;

// 初始化应用
$app = new \think\App();
$app->initialize();

echo "创建操作日志表...\n";

try {
    // 创建操作日志表
    $sql = "
    CREATE TABLE IF NOT EXISTS `operation_logs` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `user_id` int(11) DEFAULT NULL COMMENT '操作用户ID',
        `username` varchar(50) DEFAULT NULL COMMENT '操作用户名',
        `action` varchar(100) NOT NULL COMMENT '操作动作',
        `module` varchar(50) NOT NULL COMMENT '操作模块',
        `description` text COMMENT '操作描述',
        `request_method` varchar(10) NOT NULL COMMENT '请求方法',
        `request_url` varchar(500) NOT NULL COMMENT '请求URL',
        `request_params` text COMMENT '请求参数',
        `response_code` int(11) DEFAULT NULL COMMENT '响应状态码',
        `response_message` varchar(500) DEFAULT NULL COMMENT '响应消息',
        `ip_address` varchar(45) DEFAULT NULL COMMENT 'IP地址',
        `user_agent` varchar(500) DEFAULT NULL COMMENT '用户代理',
        `execution_time` decimal(10,3) DEFAULT NULL COMMENT '执行时间(秒)',
        `status` enum('success','error','warning') DEFAULT 'success' COMMENT '操作状态',
        `created_at` datetime NOT NULL COMMENT '创建时间',
        `updated_at` datetime NOT NULL COMMENT '更新时间',
        PRIMARY KEY (`id`),
        KEY `idx_user_id` (`user_id`),
        KEY `idx_action` (`action`),
        KEY `idx_module` (`module`),
        KEY `idx_status` (`status`),
        KEY `idx_created_at` (`created_at`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='操作日志表';
    ";

    Db::execute($sql);
    echo "操作日志表创建成功！\n";

    // 验证表是否存在
    $tables = Db::query("SHOW TABLES LIKE 'operation_logs'");
    if (!empty($tables)) {
        echo "验证成功：operation_logs 表已存在\n";
    } else {
        echo "错误：operation_logs 表创建失败\n";
    }

} catch (Exception $e) {
    echo "错误: " . $e->getMessage() . "\n";
}

echo "完成！\n"; 